home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / packet / rzsw34a / rosezsw.lst < prev    next >
File List  |  1993-09-15  |  17KB  |  314 lines

  1.  
  2.  
  3. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  4.                                                                                                                           Page   1
  5.  
  6.  
  7.    1    0000'                       psect    data
  8.    2                                global    _l2_user_info, _l2_info, Copyright
  9.    3                                global    _L3CALL, _L3DIGI, _L3PORT, _L3_MAXVC, _L3_WI, _L3DELAY
  10.    4                                global    _L3_ADDR, _L3CSIZ, _L3NSIZ, _NPAroute, _userport
  11.    5                                global     _l2parms, _dl2parms, _l3parms, _dl3parms
  12.    6                                global    _USER_MAXVC, _USER_L3_W, _RTable
  13.    7                                global    _sumchk, __Lbssck, mycall, mydigi, myaddr
  14.    8                                global    _NULLFCN, _clr_boot, _con_boot, _recv_boot
  15.    9                                global    _rst_boot, _send_boot, _loader
  16.   10                                global    _complete, _being_set
  17.   11                                global    _Entry, _entry
  18.   12                                global    _passlen, _passwd, _passbuf
  19.   13                            
  20.   14    0000'                   initdta:
  21.   15    0000' 001C'                 defw    _l2_info            ;dummies message
  22.   16    0002' 0105'                 defw    l2parms                ;l2 user config
  23.   17    0004' 0111'                 defw    l3parms                ;l3 link config
  24.   18    0006' 0004                  defw    4                ;L3 user pkt window
  25.   19    0008' 0005                  defw    5                ;L3 user max vc cnt
  26.   20    000A' 000F                  defw    15                ;_L3CSIZ, no L3 users
  27.   21    000C        =           initlen    equ    $-initdta
  28.   22                            
  29.   23    000C' 28 43 29 20       Copyright: defm    '(C) 1988-93 W2VY'
  30.         0010' 31 39 38 38       
  31.         0014' 2D 39 33 20       
  32.         0018' 57 32 56 59       
  33.   24    001C' 0000 0000 0028'   _l2_info: defw    0,0,l2rdta,l2wdta,l2eob
  34.         0022' 0070' 00AB'       
  35.   25    0026' 00 F0             l2flag:    defb    0,0f0h            ;No QDM Bits and AX25 L2 User PID
  36.   26    0028' 52 4F 53 45       l2rdta:    defm    'ROSE X.25 Packet Switch Version 3.4 (930915) by Thomas A. Moulton, W2VY'
  37.         002C' 20 58 2E 32       
  38.         0030' 35 20 50 61       
  39.         0034' 63 6B 65 74       
  40.         0038' 20 53 77 69       
  41.         003C' 74 63 68 20       
  42.         0040' 56 65 72 73       
  43.         0044' 69 6F 6E 20       
  44.         0048' 33 2E 34 20       
  45.         004C' 28 39 33 30       
  46.   27    006F' 0D                    defb    0dh
  47.   28    0070' 53 65 65 20       l2wdta:    defm    'See READZSW.ME in RZSW0907.ZIP !!!!'    ;35 Bytes
  48.         0074' 52 45 41 44       
  49.         0078' 5A 53 57 2E       
  50.         007C' 4D 45 20 69       
  51.         0080' 6E 20 52 5A       
  52.         0084' 53 57 30 39       
  53.         0088' 30 37 2E 5A       
  54.         008C' 49 50 20 21       
  55.         0090' 21 21 21          
  56.   29    0093' 0D 00 00 00           defb    0dh,0,0,0,0,0,0                ;7 Bytes
  57.         0097' 00 00 00          
  58.   30    009A' 00 00 00 00           defb    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    ;17 Bytes
  59.         009E' 00 00 00 00       
  60.         00A2' 00 00 00 00       
  61.         00A6' 00 00 00 00       
  62.  
  63.  
  64. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  65.                                                                                                                           Page   2
  66.  
  67.  
  68.         00AA' 00                
  69.   31    00AB' 00                l2eob:    defb    0                    ;1 Byte = 60 Bytes
  70.   32                            
  71.   33    00AC' 43 61 6C 6C       _complete: defm    'Call Completed to '    ;40 bytes for each message
  72.         00B0' 20 43 6F 6D       
  73.         00B4' 70 6C 65 74       
  74.         00B8' 65 64 20 74       
  75.         00BC' 6F 20             
  76.   34    00BE' 00 00 00 00           defb    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  77.         00C2' 00 00 00 00       
  78.         00C6' 00 00 00 00       
  79.         00CA' 00 00 00 00       
  80.         00CE' 00 00 00 00       
  81.         00D2' 00 00             
  82.   35    00D4' 43 61 6C 6C       _being_set: defm 'Call being Setup'
  83.         00D8' 20 62 65 69       
  84.         00DC' 6E 67 20 53       
  85.         00E0' 65 74 75 70       
  86.   36    00E4' 0D 00 00 00           defb    0dh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  87.         00E8' 00 00 00 00       
  88.         00EC' 00 00 00 00       
  89.         00F0' 00 00 00 00       
  90.         00F4' 00 00 00 00       
  91.         00F8' 00 00 00 00       
  92.         00FC' 00                
  93.   37                            
  94.   38    00FD' 0000 0000 0064'   passbf:    defw    0,0,prd, pwd, peb
  95.         0103' 0064' 00A8'       
  96.   39    0107' 00 F0                 defb    0,0f0h
  97.   40    000C        =           pblen    equ    $-passbf
  98.   41                            
  99.   42    0007        =           AXALEN    equ    7
  100.   43    0001        =           nnodes    equ    1    ;1 nodes in default config
  101.   44    0000        =           nusers    equ    0    ; No Level 3 users in default config
  102.   45    0018        =           maxl3    equ    24    ; My Calls + 15 Node Paths + 8 Users
  103.   46                            
  104.   47                                GLOBAL    _maxl3dev
  105.   48    0109' 0018              _maxl3dev: defw    maxl3    ;Tell rest of world how big it is
  106.   49                            
  107.   50    010B' A4 9E A6 8A       mycall:    defb    0a4h,9eh,0a6h,08ah,040h,40h,66h    ;ROSE-3
  108.         010F' 40 40 66          
  109.   51    0112' A4 9E A6 8A       mydigi:    defb    0a4h,9eh,0a6h,08ah,040h,40h,64h    ;ROSE-2
  110.         0116' 40 40 64          
  111.   52    0119' 00                myport:    defb    0
  112.   53    011A' 0A 31 00 00       myaddr:    defb    10,31h,00h,00h,00h,00h,00h,00h,00h ;Switch Address
  113.         011E' 00 00 00 00       
  114.         0122' 00                
  115.   54    0123' 0000              mydelay: defw    0        ;900 =15 Mins before retry network link
  116.   55    0125' 14                myvc:    defb    20        ;network links can have 20 vc's default
  117.   56    0126' 04                mywi:    defb    4        ;default window of 4
  118.   57                            
  119.   58    0127' 0001 0000*        spfcn:    defw    1,_loader
  120.   59    012B' 00 00             defpwd:    defb    0,0        ;40 Bytes for KEY
  121.   60    012D' 52 4F 53 45           defm    'ROSEISBESTABCDEFGHIJKLMNOPQRSTUVWXYZW2VY'
  122.         0131' 49 53 42 45       
  123.  
  124.  
  125. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  126.                                                                                                                           Page   3
  127.  
  128.  
  129.         0135' 53 54 41 42       
  130.         0139' 43 44 45 46       
  131.         013D' 47 48 49 4A       
  132.         0141' 4B 4C 4D 4E       
  133.         0145' 4F 50 51 52       
  134.         0149' 53 54 55 56       
  135.         014D' 57 58 59 5A       
  136.         0151' 57 32 56 59       
  137.   61                            
  138.   62    0155' 0CEA 0104' 0103'  initab:    defw    FLAG2-BSSCK-1,BSSCK+1,BSSCK    ;Length, Dest, Src
  139.   63    015B' 000C 011D' 0000'      defw    initlen,initbss,initdta
  140.   64    0161' 0007 0129' 010B'      defw    7*nnodes,_L3CALL,mycall
  141.   65    0167' 0007 01D1' 0112'      defw    7*nnodes,_L3DIGI,mydigi
  142.   66    016D' 0009 02F1' 011A'      defw    9*nnodes,_L3_ADDR,myaddr
  143.   67    0173' 0001 0279' 0119'      defw    nnodes,_L3PORT,myport
  144.   68    0179' 0001 02D9' 0125'      defw    nnodes,_L3_MAXVC,myvc
  145.   69    017F' 0001 02A9' 0126'      defw    nnodes,_L3_WI,mywi
  146.   70    0185' 0002 03C9' 0123'      defw    nnodes*2,_L3DELAY,mydelay
  147.   71    018B' 000C 0105' 0000*      defw    12,l2parms,_dl2parms    ;init l2 parms ram table
  148.   72    0191' 000C 0111' 0000*      defw    12,l3parms,_dl3parms    ;init l3 parms ram table
  149.   73    0197' 002A 0CED' 012B'      defw    42,_passlen,defpwd
  150.   74    019D' 0004 0036' 0127'  initwm:    defw    4,_maxfcn, spfcn    ;Application loader
  151.   75    01A3' 000A 0010' 0000*      defw    10,_L2PARS,_dL2PARS    ;Hooks for Level 2 User Switching
  152.   76    01A9' 000A 001A' 0000*      defw    10,_L3PARS,_dL3PARS    ;Hooks for Level 3 Switching
  153.   77    01AF' 0008 0008' 0000*      defw    8,_ifaces,_difaces    ;Level 1 to Level 2 Hooks 4 ports
  154.   78    01B5' 000A 0000* 0000*      defw    10,_entry,_Entry    ;Message for Loader
  155.   79    01BB' 000C 0058' 00FD'      defw    pblen,_passbuf,passbf    ;Static datastr for Loader Password
  156.   80    01C1' 0000                  defw    0
  157.   81                            
  158.   82    0000'                       psect    text
  159.   83                                global    __init
  160.   84    0000'                   __init:
  161.   85    0000' 3A 0104'              ld    a,(FLAG1)    ;check flags
  162.   86    0003' FE AA                 cp    0aah
  163.   87    0005' 20 1C                 jp    nz,1f
  164.   88    0007' 3A 0DEE'              ld    a,(FLAG2)
  165.   89    000A' FE AA                 cp    0aah
  166.   90    000C' 20 15                 jp    nz,1f
  167.   91    000E' CD 0050'              call    sumchk        ;compute the checksum (xor of bytes)
  168.   92    0011' 47                    ld    b,a
  169.   93    0012' 3A 0103'              ld    a,(BSSCK)
  170.   94    0015' B8                    cp    b
  171.   95    0016' 20 0B                 jp    nz,1f
  172.   96    0018' 21 001C'              ld    hl,_l2_info
  173.   97    001B' 22 011D'              ld    (_l2_user_info),hl    ;Only the default message is in rom
  174.   98    001E' 21 019D'              ld    hl,initwm        ;Warm Start init's
  175.   99    0021' 18 07                 jp    initlp
  176.  100                            
  177.  101    0023' AF                1:    xor    a        ;Clear A
  178.  102    0024' 32 0103'              ld    (BSSCK),a    ;IPAGE and MEMSIZ are set elsewhere
  179.  103                            ;
  180.  104    0027' 21 0155'              ld    hl,initab    ;start of init table
  181.  105    002A' 4E                initlp:    ld    c,(hl)
  182.  106    002B' 23                    inc    hl
  183.  107    002C' 46                    ld    b,(hl)
  184.  
  185.  
  186. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  187.                                                                                                                           Page   4
  188.  
  189.  
  190.  108    002D' 23                    inc    hl
  191.  109    002E' 78                    ld    a,b
  192.  110    002F' B1                    or    c        ;done yet?
  193.  111    0030' 28 0F                 jp    z,initeof    ;yes, get out!
  194.  112    0032' 5E                    ld    e,(hl)
  195.  113    0033' 23                    inc    hl
  196.  114    0034' 56                    ld    d,(hl)
  197.  115    0035' 23                    inc    hl
  198.  116    0036' 7E                    ld    a,(hl)
  199.  117    0037' 23                    inc    hl
  200.  118    0038' E5                    push    hl
  201.  119    0039' 66                    ld    h,(hl)
  202.  120    003A' 6F                    ld    l,a
  203.  121    003B' ED B0                 ldir
  204.  122    003D' E1                    pop    hl
  205.  123    003E' 23                    inc    hl
  206.  124    003F' 18 E9                 jp    initlp
  207.  125                            
  208.  126    0041'                   initeof:
  209.  127    0041' 3E AA                 ld    a,0aah
  210.  128    0043' 32 0104'              ld    (FLAG1),a
  211.  129    0046' 32 0DEE'              ld    (FLAG2),a
  212.  130                            
  213.  131                            ;            Now set the checksum value for next time.
  214.  132    0049'                   _sumchk:
  215.  133    0049' CD 0050'              call    sumchk
  216.  134    004C' 32 0103'              ld    (BSSCK),a
  217.  135    004F' C9                    ret
  218.  136                            
  219.  137    0050'                   sumchk:
  220.  138    0050' 21 0104'              ld    hl,FLAG1
  221.  139    0053' 01 0CEA               ld    bc,FLAG2-FLAG1
  222.  140    0056' 7E                    ld    a,(hl)
  223.  141    0057' 23                    inc    hl
  224.  142    0058' E5                    push    hl
  225.  143    0059' D1                    pop    de        ;source and dest same, the LD is a nop
  226.  144    005A' AE                1:    xor    (hl)
  227.  145    005B' ED A0                 ldi
  228.  146    005D' E0                    ret    po        ;until BC = 0
  229.  147    005E' 18 FA                 jp    1b
  230.  148                            
  231.  149    0000'                       psect    bssck        ;bss with checksum protection
  232.  150                                global    IPAGE, _MEMSIZ, _HEAPUSD, _HEAPSIZ, _COLD
  233.  151    0000'                   IPAGE:    DEFS    256        ;Interrupt pointer table (HDWINT.AS)
  234.  152    0100'                   _MEMSIZ: DEFS    2        ;Size of Dynamic RAM (BOOT.AS)
  235.  153    0102'                   _COLD:    defs    1        ;Reason for Restart (BOOT.AS)
  236.  154    0103'                   BSSCK:    defs    1
  237.  155    0104'                   FLAG1:    defs    1
  238.  156    0105'                   l2parms: defs 12
  239.  157    0111'                   l3parms: defs 12
  240.  158    011D'                   initbss:
  241.  159    011D'                   _l2_user_info: defs 2
  242.  160    011F'                   _l2parms: defs 2
  243.  161    0121'                   _l3parms: defs 2
  244.  162    0123'                   _USER_L3_W: defs 2
  245.  
  246.  
  247. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  248.                                                                                                                           Page   5
  249.  
  250.  
  251.  163    0125'                   _USER_MAXVC: defs 2
  252.  164    0127'                   _L3CSIZ: defs 2
  253.  165    0129'                   _L3CALL: defs AXALEN*maxl3    ;7 * 18 - 16 Nodes and 8 Users (bbs?)
  254.  166    01D1'                   _L3DIGI: defs AXALEN*maxl3
  255.  167    0279'                   _L3PORT: defs 2*maxl3
  256.  168    02A9'                   _L3_WI:  defs 2*maxl3
  257.  169    02D9'                   _L3_MAXVC: defs maxl3
  258.  170    02F1'                   _L3_ADDR: defs    9*maxl3    ;Address of this device
  259.  171    03C9'                   _L3DELAY: defs 2*16    ;2 * 16    Nodes only
  260.  172    03E9'                   _L3NSIZ: defs 2
  261.  173    03EB'                   _NPAroute: defs 256        ;16 * 16 Alternatives in routing list
  262.  174    04EB'                   _userport: defs 2        ;Port number for out-bound User connect requests
  263.  175    04ED'                   _RTable: defs    2048        ;2K Max Routing Table for the WORLD!
  264.  176    0CED'                   _passlen: defs    1
  265.  177    0CEE'                   _passwd: defs    256
  266.  178    0DEE'                   FLAG2:    defs    1
  267.  179    0000'                       psect    bss
  268.  180                                global    _Init_bss, _SAVE, _SAVEA, _taskq, _timerq, _spcfcn, _maxfcn
  269.  181                                global    _ifaces, _L2PARS, _L3PARS, _difaces, _dL2PARS, _dL3PARS
  270.  182    0000'                   _Init_bss:
  271.  183    0000'                   _HEAPUSD: defs 2
  272.  184    0002'                   _HEAPSIZ: defs 2
  273.  185    0004'                   _taskq: defs 2
  274.  186    0006'                   _timerq: defs 2
  275.  187    0008'                   _ifaces: defs 8        ;4 pointers (2 bytes each)
  276.  188    0010'                   _L2PARS: defs 10    ;5 pointers (2 bytes each)
  277.  189    001A'                   _L3PARS: defs 10    ;5 pointers (2 bytes each)
  278.  190    0024'                   _SAVE: defs 2
  279.  191    0026'                   _SAVEA: defs 16
  280.  192    0036'                   _maxfcn: defs 2
  281.  193    0038'                   _spcfcn: defs 32    ; 16 - 2 byte entries
  282.  194    0058'                   _passbuf: defs 80
  283.  195    0064'       =           prd    equ    _passbuf+12
  284.  196    0064'       =           pwd    equ    _passbuf+12
  285.  197    00A8'       =           peb    equ    $
  286.  
  287.  
  288. HI-TECH SOFTWARE Z80 Macro Assembler: rzsw.as
  289.                                                                                                                           Page   6
  290.  
  291.  
  292.  
  293.                                                 ---------- Symbol Table ----------
  294.  
  295.         (ABS) 0000#         AXALEN 0007           BSSCK 0103'      Copyright 000C'          FLAG1 0104'          FLAG2 0DEE'  
  296.         IPAGE 0000'          _COLD 0102'         _Entry 0000*       _HEAPSIZ 0002'       _HEAPUSD 0000'      _Init_bss 0000'  
  297.       _L2PARS 0010'        _L3CALL 0129'        _L3CSIZ 0127'       _L3DELAY 03C9'        _L3DIGI 01D1'        _L3NSIZ 03E9'  
  298.       _L3PARS 001A'        _L3PORT 0279'       _L3_ADDR 02F1'      _L3_MAXVC 02D9'         _L3_WI 02A9'        _MEMSIZ 0100'  
  299.     _NPAroute 03EB'       _NULLFCN 0000*        _RTable 04ED'          _SAVE 0024'         _SAVEA 0026'     _USER_L3_W 0123'  
  300.   _USER_MAXVC 0125'       __Lbssck 0000*         __init 0000'     _being_set 00D4'      _clr_boot 0000*      _complete 00AC'  
  301.     _con_boot 0000*       _dL2PARS 0000*       _dL3PARS 0000*       _difaces 0000*      _dl2parms 0000*      _dl3parms 0000*  
  302.        _entry 0000*        _ifaces 0008'       _l2_info 001C'  _l2_user_info 011D'       _l2parms 011F'       _l3parms 0121'  
  303.       _loader 0000*        _maxfcn 0036'      _maxl3dev 0109'       _passbuf 0058'       _passlen 0CED'        _passwd 0CEE'  
  304.    _recv_boot 0000*      _rst_boot 0000*     _send_boot 0000*        _spcfcn 0038'        _sumchk 0049'         _taskq 0004'  
  305.       _timerq 0006'      _userport 04EB'            bss 00A8#          bssck 0DEF#           data 01C3#         defpwd 012B'  
  306.        initab 0155'        initbss 011D'        initdta 0000'        initeof 0041'        initlen 000C          initlp 002A'  
  307.        initwm 019D'          l2eob 00AB'         l2flag 0026'        l2parms 0105'         l2rdta 0028'         l2wdta 0070'  
  308.       l3parms 0111'          maxl3 0018          myaddr 011A'         mycall 010B'        mydelay 0123'         mydigi 0112'  
  309.        myport 0119'           myvc 0125'           mywi 0126'         nnodes 0001          nusers 0000          passbf 00FD'  
  310.         pblen 000C             peb 00A8'            prd 0064'            pwd 0064'          spfcn 0127'         sumchk 0050'  
  311.          text 0060#  
  312.  
  313. 7 jump optimizations
  314.